﻿using System.Windows;

namespace SHomeWorkshop.LunarPresentation.Commands
{
    public partial class Command
    {
        /// <summary>
        /// 设置当前文档中所有文本块与富文本块的“最大宽度”。
        /// 本质上是调用“Command.RunTextCmd("zdwbk_{新宽度}")”这个方法。
        /// </summary>
        public static void SetMaxTextWidth()
        {
            if (Globals.selectedEditor == null)
            {
                MessageBox.Show("当前未打开任何文档！", Globals.appName, MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return;
            }

            Dialogs.InputWindow iw = new Dialogs.InputWindow(Globals.MainWindow,
                "请输入新的“最大文本宽度”值。此宽度值可能限制当前文档中所有文本块的最大宽度。\r\n\r\n" +
                "★注意：当前文档中的文本块（或富文本块）只有在下列情况下最大宽度才受制于这个值：\r\n" +
                "　　　　⑴文本块（或富文本块）本身的“折行”属性被设置为“自动折行”；\r\n" +
                "　　　　⑵文本块（或富文本块）本身的“折行”属性被设置为“随文档”，且当前文档打开了“自动折行”。",
                Globals.selectedEditor.MaxTextWidth.ToString(), Globals.appName, null, true) { Owner = Globals.MainWindow };

            if (iw.ShowDialog() != true) return;

            string newWidthStr = iw.InputedText;

            Command.RunTextCmd("zdwbk " + newWidthStr);

            // 为防止主窗口快捷键失效，令Editor的ScrollViewer获取焦点。
            Globals.MainWindow.Focus();
            Globals.SwitchInputMethod(false);
        }
    }
}
